// //https://blog.csdn.net/renyuanxingxing/article/details/80376170
// //https://item.taobao.com/item.htm?spm=a1z0k.7385961.1997985097.d4918997.2e31588dhxTAy2&id=559875365452&_u=t2dmg8j26111 淘宝地址
// //

// //本次实验电机驱动采用共阴极接线方式
// //将步进电机的参数写到一个子函数中，并加入限位开关，触动限位开关可实现步进电机停转
// #include <Arduino.h>
// #include <Ticker.h>
// #include <stdlib.h>//https://www.jianshu.com/p/a892134236a8
// #include <string.h>
// // //#include <analogWrite.h>

// Ticker ticker;
// //#include <Ticker.h>
// //#include <analogWrite.h>
// //const int ENAPin = 5; //define Enable Pin
// #define DIRPin  D5//define Direction pin
// #define PULPin  D6//define Pulse pin
// //电机200一圈，主板频率是400 
// #define puls    200 
// #define fre     400
// int moto_cicle ;
// //const int BUTTON = 8; //define Button pin
 
//  //按圈行走 
// //1秒一圈 1steps一圈 0.5步就是半圈
// //占空比多少无所谓，主要是持续时间
// void motor_circle(bool dir,float steps){
//   if(dir){
//     digitalWrite(DIRPin,LOW);//正
//   }else{
//     digitalWrite(DIRPin,HIGH);//反
//   }
//   analogWrite(PULPin, int(255/2));
//   delay(int(steps*500));//设电机200一圈，主板频率是400 则1秒=走两圈 0.5少一圈
//   analogWrite(PULPin, 0);
// }

// //按步进行 一步是1.8度，一圈是360度=200步 
// //1秒一圈 1秒200步 1步=5毫秒

// //如果是800 puls 
// void motor_step(bool dir,int steps){
//   if(dir){
//     digitalWrite(DIRPin,LOW);//正
//   }else{
//     digitalWrite(DIRPin,HIGH);//反
//   }
//   analogWrite(PULPin, int(255/2));
//   delayMicroseconds(steps*(1000000/fre));//400 
//   analogWrite(PULPin, 0);
// }

// //按圈行走测试
// void testMoto_circle(){

//   motor_circle(true,0.5); //正 0.5圈
//   motor_circle(false,0.5); //反 0.5圈
//   motor_circle(true,1); //正 1圈
//   motor_circle(false,1); //反 1圈
// }

// void testMoto_step(){
//   motor_step(true,1);//正一步
//   motor_step(false,25);//反两步
//   motor_step(true,30);//正三步
// }

// void setup()
// {
//   //pinMode (ENAPin, OUTPUT);
//   pinMode(PULPin, OUTPUT);//pwm
//   pinMode(DIRPin, OUTPUT);//方向
//   //pinMode (BUTTON, INPUT);
//   analogWriteFreq(fre);//电机1秒=1圈   和拨码开关匹配
//   moto_cicle = (int(puls/fre))*1000; //电机200一圈，主板频率是400  1000毫秒=2圈 1圈=500毫秒

//   testMoto_circle();//按圈行走测试
//   //testMoto_step();//按步行走测试
//   Serial.begin(115200); 
//   Serial.println("input step"); // 通过串口监视器通知用户
// }

 
// void loop()
// {
//     if (Serial.available()){                      // 当串口接收到信息后
//     Serial.println("input step"); // 通过串口监视器通知用户
    
//     int serialData = Serial.parseInt();    // 将接收到的信息使用readString()存储于serialData变量
//     Serial.print("recive step: ");     // 然后通过串口监视器输出serialData变量内容
//     Serial.println(serialData);                 // 以便查看serialData变量的信息
  
//     motor_step(true,serialData);
//   }
// }
 
